package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后java推出了一个新特性:自动关闭特性
 * 可以更优雅的在异常处理机制中关闭IO
 */
public class AutoCloseableDemo {
    public static void main(String[] args) {
        //自动关闭特性是编译器认可的，变异后就变成FinallyDemo2的样子
        try (
                /*
                    try()中可以声明的对象对应的类型必须实现了AutoCloseable

                 */
                //只有在finally中最后会调用close方法关闭的对象才在这里声明并初始化
                FileOutputStream fos = new FileOutputStream("fos.dat")
        ) {
            fos.write(1);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
